RAIS  3.2
C:/Projekte/RAIS/Specific Masks/EditFunctionalRoles_New_Update2.aspx.cs
Go to the documentation of this file.
00001 
00028 using System;
00029 using System.Data;
00030 using System.Configuration;
00031 using System.Collections;
00032 using System.Collections.Generic;
00033 using System.Web;
00034 using System.Web.Security;
00035 using System.Web.UI;
00036 using System.Web.UI.WebControls;
00037 using System.Web.UI.WebControls.WebParts;
00038 using System.Web.UI.HtmlControls;
00039 
00040 using RAIS.Common.UserManagement;
00041 
00042 using DataRoles = System.Collections.Generic.Dictionary<string, RAIS.Common.UserManagement.DataRole>;
00043 using DataRoleAttributes = System.Collections.Generic.Dictionary<string, RAIS.Common.UserManagement.DataRoleAttribute>;
00044 using FunctionRoles = System.Collections.Generic.Dictionary<string, RAIS.Common.UserManagement.FunctionRole>;
00045 using FunctionRoleCategories = System.Collections.Generic.Dictionary<string, RAIS.Common.UserManagement.FunctionRole.Category>;
00046 using FunctionRoleSubcategories = System.Collections.Generic.Dictionary<string, RAIS.Common.UserManagement.FunctionRole.Subcategory>;
00047 using Masks = System.Collections.Generic.Dictionary<string, RAIS.Common.UserManagement.Mask>;
00048 using FunctionRoleAttributes = System.Collections.Generic.Dictionary<string, RAIS.Common.UserManagement.FunctionRoleAttribute>;
00049 using UserTypes = System.Collections.Generic.Dictionary<string, RAIS.Common.UserManagement.UserTypeData>;
00050 
00051 namespace RAIS.UI.SpecificMasks
00052 {
00056     public partial class EditFunctionalRoles_New_Update2 : System.Web.UI.Page
00057         {
00061         enum EditFunctionalRoles_PageMode
00062                 {
00063                         viewRoles,
00064                         addRole,
00065                         editRole
00066                 };
00067                 string[] accessNames = new string[4];
00068                 //*********************************************************************
00069                 #region Event handlers
00070         protected void Page_PreLoad(object sender, EventArgs e)
00071         {
00072             RAIS.UI.Common.PageManagement.TrimTextBoxValues(this);
00073         }
00084                 protected void Page_Load(object sender, EventArgs e)
00085                 {
00086                         this.Response.Cache.SetNoStore();
00087                         if (this.CurrentUser == null)
00088                             UI.Common.AccessManagement.SignOut(this);
00089 
00090                         this.LBLresult.Text = string.Empty;
00091             
00092                         if (!this.IsPostBack)
00093                         {
00094                 UI.Common.Localisation.TranslateGridViewHeader(this.GVfpermissions, this.ToString(), RAIS.Common.Constants.DEFAULT_LANGUAGE, this.CurrentUser.Language);                
00095                 this.BTNdelete.Attributes.Add("onclick", string.Format("javascript: return confirm('{0}');", RAIS.Common.Messages.DELETE_QUESTION_FUNCTIONAL_ROLE.Replace("'", "\\'")));
00096 
00097                 this.LBLusernameNoTranslation.Text = this.CurrentUser.Name;
00098                                 this.CurrentEditFunctionalRoles_PageMode = EditFunctionalRoles_PageMode.viewRoles;
00099                 this.LBLadmin.ForeColor = RAIS.UI.Common.Constants.COLOR_OF_MENU_BAR_TEXT_HIGHLIGHT;
00100                                 UI.Common.UserManagement.InitializeFunctionalRolesListBox(this.LBfmrolename, this.SavedFunctionRoleSelection);
00101 
00102                                 this.ShowRole();
00103 
00104                                 UI.Common.PageManagement.InitializePage(this, this.TreeView1);
00105 //                              this.LBTNmessagebox.Visible = !(this.CurrentUser.FunctionalRole.Type == FunctionRole.FunctionRoleType.Guest);
00106                         }
00107             UI.Common.PageManagement.InitHelpMainMenu(LBTNdefault);
00108                 }
00114                 protected void Page_Init(object sender, EventArgs e)
00115         {
00116             Common.PageManagement.SetScrolableListBox(LBfmrolename, this, true);
00117         }
00128                 protected void LBfmrolename_SelectedIndexChanged(object sender, EventArgs e)
00129                 {
00130                         this.SavedFunctionRoleSelection = this.LBfmrolename.SelectedValue;
00131                         this.GVfpermissions.SelectedIndex = -1;
00132                         this.EnableDisableControls();
00133                         this.ShowRole();
00134                 }
00143                 protected void DDLfmcategories_SelectedIndexChanged(object sender, EventArgs e)
00144                 {
00145                         UI.Common.UserManagement.InitializeSubcategoriesList(this.DDLfmsubcategories,
00146                                                                                                                                         this.SelectedCategory,
00147                                                                                                                                         this.SelectedRole);
00148 
00149                         UI.Common.UserManagement.InitializeMasksList(this.DDLfmmask,
00150                                                                                                                  this.SelectedCategory,
00151                                                                                                                  this.SelectedSubcategory,
00152                                                                                                                  this.SelectedRole);
00153                 }
00161                 protected void DDLfmsubcategories_SelectedIndexChanged(object sender, EventArgs e)
00162                 {
00163                         UI.Common.UserManagement.InitializeMasksList(this.DDLfmmask,
00164                                                                                                                  this.SelectedCategory,
00165                                                                                                                  this.SelectedSubcategory,
00166                                                                                                                  this.SelectedRole);
00167                 }
00174                 protected void BTNadd_Click(object sender, EventArgs e)
00175                 {
00176                         this.CurrentEditFunctionalRoles_PageMode = EditFunctionalRoles_PageMode.addRole;
00177                         this.InitializeEditControls();
00178                 }
00185                 protected void BTNedit_Click(object sender, EventArgs e)
00186                 {
00187                         this.CurrentEditFunctionalRoles_PageMode = EditFunctionalRoles_PageMode.editRole;
00188                         this.InitializeEditControls();
00189                 }
00196                 protected void BTNdelete_Click(object sender, EventArgs e)
00197                 {
00198                         bool success = true;
00199                         success = this.RemoveFunctionRoleAttribute();
00200                         if (success)
00201                                 this.SaveRole();
00202                 }
00209                 protected void BTNdiscard_Click(object sender, EventArgs e)
00210                 {
00211                         this.CurrentEditFunctionalRoles_PageMode = EditFunctionalRoles_PageMode.viewRoles;
00212                 }
00219                 protected void BTNapply_Click(object sender, EventArgs e)
00220                 {
00221                         bool success = true;
00222                         if (this.CurrentEditFunctionalRoles_PageMode == EditFunctionalRoles_PageMode.editRole)
00223                         {
00224                                 success = this.RemoveFunctionRoleAttribute();
00225                         }
00226                         if (success)
00227                                 success = this.AddFunctionRoleAttribute();
00228                         if (success)
00229                                 this.SaveRole();
00230                 }
00237                 protected void GVfpermissions_RowCommand(object sender, GridViewCommandEventArgs e)
00238                 {
00239                         if (e.CommandName.Equals("Select"))
00240                         {
00241                                 int rowIndex = Convert.ToInt32(e.CommandArgument);
00242                                 this.GVfpermissions.SelectedIndex = rowIndex;
00243                                 this.EnableDisableControls();
00244                         }
00245                 }
00252                 protected void LBTNlogout_Click(object sender, EventArgs e)
00253                 {
00254                         UI.Common.AccessManagement.SignOut(this);
00255                 }
00262                 protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e)
00263                 {
00264                         UI.Common.UserManagement.ProcessTreeViewOnRedirect(this.TreeView1);
00265                 }
00266                 #endregion
00267                 //*********************************************************************
00268                 #region Private helper methods
00269 
00275                 void ShowRole()
00276                 {
00277                         if (this.SelectedRole != null)
00278                         {
00279                                 this.InitializeGridView();
00280                         }
00281                 }
00285                 protected void InitializeGridView()
00286                 {
00287                         this.GVfpermissions.DataSource = this.SelectedRole.Attributes.Values;
00288                         this.GVfpermissions.DataBind();
00289                 }
00293                 private void InitializeEditControls()
00294                 {
00295                         UI.Common.UserManagement.InitializeCategoriesList(this.DDLfmcategories, this.SelectedRole);
00296                         this.SetCategorySelection(this.SelectedRoleAttribute);
00297 
00298                         UI.Common.UserManagement.InitializeSubcategoriesList(this.DDLfmsubcategories,
00299                                                                                                                                         this.SelectedCategory,
00300                                                                                                                                         this.SelectedRole);
00301                         this.SetSubcategorySelection(this.SelectedRoleAttribute);
00302 
00303                         UI.Common.UserManagement.InitializeMasksList(this.DDLfmmask,
00304                                                                                                                                         this.SelectedCategory,
00305                                                                                                                                         this.SelectedSubcategory,
00306                                                                                                                                         this.SelectedRole);
00307                         this.SetMaskSelection(this.SelectedRoleAttribute);
00308 
00309                         this.InitializeAccessFlags();
00310                         //try
00311                         //{
00312                         //    this.SetCategorySelection(this.SelectedRoleAttribute);
00313                         //    this.SetSubcategorySelection(this.SelectedRoleAttribute);
00314                         //    this.SetMaskSelection(this.SelectedRoleAttribute);
00315                         //}
00316                         //catch
00317                         //{
00318 
00319                         //}
00320                 }
00324                 private void InitializeAccessFlags()
00325                 {
00326                         if (this.CurrentEditFunctionalRoles_PageMode == EditFunctionalRoles_PageMode.addRole)
00327                         {
00328                                 this.CBfmadd.Checked = false;
00329                                 this.CBfmdelete.Checked = false;
00330                                 this.CBfmedit.Checked = false;
00331                                 this.CBfmview.Checked = false;
00332                         }
00333                         else
00334                         {
00335                                 this.CBfmadd.Checked = this.SelectedRoleAttribute.AccessAdd;
00336                                 this.CBfmdelete.Checked = this.SelectedRoleAttribute.AccessDelete;
00337                                 this.CBfmedit.Checked = this.SelectedRoleAttribute.AccessEdit;
00338                                 this.CBfmview.Checked = this.SelectedRoleAttribute.AccessView;
00339                         }
00340                 }
00344                 private void EnableDisableControls()
00345                 {
00346                         this.LBfma.Enabled = this.CurrentEditFunctionalRoles_PageMode == EditFunctionalRoles_PageMode.viewRoles;
00347                         this.LBfmrolename.Enabled = (this.CurrentEditFunctionalRoles_PageMode == EditFunctionalRoles_PageMode.viewRoles);
00348                         this.GVfpermissions.Enabled = (this.CurrentEditFunctionalRoles_PageMode == EditFunctionalRoles_PageMode.viewRoles);
00349                         this.BTNadd.Enabled = (this.CurrentEditFunctionalRoles_PageMode == EditFunctionalRoles_PageMode.viewRoles);
00350                         this.BTNedit.Enabled = (this.CurrentEditFunctionalRoles_PageMode == EditFunctionalRoles_PageMode.viewRoles) && (this.SelectedRoleAttribute != null);
00351                         this.BTNdelete.Enabled = (this.CurrentEditFunctionalRoles_PageMode == EditFunctionalRoles_PageMode.viewRoles) && (this.SelectedRoleAttribute != null);
00352                         this.BTNsave.Enabled = !(this.CurrentEditFunctionalRoles_PageMode == EditFunctionalRoles_PageMode.viewRoles);
00353                         this.BTNdiscard.Enabled = !(this.CurrentEditFunctionalRoles_PageMode == EditFunctionalRoles_PageMode.viewRoles);
00354                         this.FSattributes.Visible = !(this.CurrentEditFunctionalRoles_PageMode == EditFunctionalRoles_PageMode.viewRoles);
00355 
00356                         UI.Common.UserManagement.EnableCommonControls(this, (this.CurrentEditFunctionalRoles_PageMode == EditFunctionalRoles_PageMode.viewRoles));
00357                 }
00361                 private bool AddFunctionRoleAttribute()
00362                 {
00363                         bool success = true;
00364                         FunctionRole selectedRole = this.SelectedRole;
00365                         if (selectedRole != null)
00366                         {
00367                                 FunctionRoleAttribute functionAttribute = new FunctionRoleAttribute();
00368                                 functionAttribute.Category = this.SelectedCategory;
00369                                 functionAttribute.Subcategory = this.SelectedSubcategory;
00370                                 functionAttribute.Mask = this.SelectedMask;
00371 
00372                                 functionAttribute.AccessView = this.CBfmview.Checked;
00373                                 functionAttribute.AccessAdd = this.CBfmadd.Checked;
00374                                 functionAttribute.AccessEdit = this.CBfmedit.Checked;
00375                                 functionAttribute.AccessDelete = this.CBfmdelete.Checked;
00376 
00377                                 string returnMessage = RAIS.Common.Messages.MODIFICATION_PRESS_SAVE;
00378 
00379                                 success = this.ValidateNewFunctionRoleAttribute(functionAttribute, ref returnMessage);
00380                                 if (success)
00381                                 {
00382                                         this.CurrentEditFunctionalRoles_PageMode = EditFunctionalRoles_PageMode.viewRoles;
00383                                         success = selectedRole.AddAttribute(functionAttribute, ref returnMessage);
00384                                         if (success)
00385                                                 this.Modified = true;
00386 
00387                                 }
00388                                 RAIS.UI.Common.MessageDisplay.DisplayReturnMessage(this.LBLresult,
00389                                                                                                                                         returnMessage,
00390                                                                                                                                         success);
00391                         }
00392                         return success;
00393                 }
00397                 private bool RemoveFunctionRoleAttribute()
00398                 {
00399                         bool success = false;
00400                         FunctionRole selectedRole = this.SelectedRole;
00401                         if (selectedRole != null)
00402                         {
00403                                 FunctionRoleAttribute selectedAttribute = this.SelectedRoleAttribute;
00404 
00405                                 string returnMessage = RAIS.Common.Messages.MODIFICATION_PRESS_SAVE;
00406 
00407                                 success = selectedRole.RemoveAttribute(selectedAttribute, ref returnMessage);
00408                                 if (success)
00409                                         this.Modified = true;
00410 
00411                                 RAIS.UI.Common.MessageDisplay.DisplayReturnMessage(this.LBLresult, returnMessage, success);
00412                         }
00413                         return success;
00414                 }
00419                 private bool SaveRole()
00420                 {
00421                         string returnMessage = string.Empty;
00422                         bool success = true;
00423 
00424                         if (!this.Modified)
00425                         {
00426                                 returnMessage = RAIS.Common.Messages.FUNCTION_ROLE_NO_MODIFICATION;
00427                                 success = false;
00428                         }
00429                         else
00430                         {
00431                                 success = ApplicationLogicLayer.UserManagement.SaveFunctionRole(this.SelectedRole, ref returnMessage);
00432                                 if (success)
00433                                 {
00434                                         this.CurrentEditFunctionalRoles_PageMode = EditFunctionalRoles_PageMode.viewRoles;
00435                                         this.Modified = false;
00436 
00437                                         this.InitializeGridView();
00438                                 }
00439                         }
00440                         RAIS.UI.Common.MessageDisplay.DisplayReturnMessage(this.LBLresult,
00441                                                                                                                                 returnMessage,
00442                                                                                                                                 success);
00443                         return success;
00444                 }
00453                 bool ValidateNewFunctionRoleAttribute(FunctionRoleAttribute newFuncitonRoleAttribute, ref string returnMessage)
00454                 {
00455                         FunctionRole funcitonRole = this.SelectedRole;
00456                         if (funcitonRole == null)
00457                         {
00458                                 returnMessage = RAIS.Common.Messages.FUNCTION_ROLE_DOES_NOT_EXIST;
00459                                 return false;
00460                         }
00461                         else
00462                         {
00463                                 return funcitonRole.ValidateNewAttribute(newFuncitonRoleAttribute, ref returnMessage);
00464                         }
00465                 }
00471                 private void SetCategorySelection(FunctionRoleAttribute roleAttribute)
00472                 {
00473                         if (roleAttribute != null 
00474                                 && this.DDLfmcategories.Items.Contains(new ListItem(roleAttribute.Category.Name)))
00475                         {
00476                                 this.DDLfmcategories.SelectedValue = roleAttribute.Category.Name;
00477                         }
00478                 }
00484                 private void SetSubcategorySelection(FunctionRoleAttribute roleAttribute)
00485                 {
00486                         if (roleAttribute != null
00487                                 && this.DDLfmsubcategories.Items.Contains(new ListItem(roleAttribute.Subcategory.Name)))
00488                         {
00489                                 this.DDLfmsubcategories.SelectedValue = roleAttribute.Subcategory.Name;
00490                         }
00491                 }
00497                 private void SetMaskSelection(FunctionRoleAttribute roleAttribute)
00498                 {
00499                         if (roleAttribute != null
00500                                 && this.DDLfmmask.Items.Contains(new ListItem(roleAttribute.Mask.Name)))
00501                         {
00502                                 this.DDLfmmask.SelectedValue = roleAttribute.Mask.Name;
00503                         }
00504                 }
00505                 #endregion
00506                 //*********************************************************************
00507                 #region Private helper properties
00508 
00511                 private FunctionRole SelectedRole
00512                 {
00513                         get
00514                         {
00515                                 FunctionRole functionRole = null;
00516 
00517                                 if (this.LBfmrolename.SelectedIndex != -1)
00518                                 {
00519                                         FunctionRoles functionRoles = (FunctionRoles)this.Session[RAIS.UI.Common.Constants.FUNCTION_ROLES_TAG];
00520                                         if (functionRoles.ContainsKey(this.LBfmrolename.SelectedValue))
00521                                                 functionRole = functionRoles[this.LBfmrolename.SelectedValue];
00522                                 }
00523 
00524                                 return functionRole;
00525                         }
00526                 }
00530                 private FunctionRole.Category SelectedCategory
00531                 {
00532                         get
00533                         {
00534                                 FunctionRoleCategories categories = (FunctionRoleCategories)this.Session[UI.Common.Constants.FUNCTION_ROLE_CATEGORIES_TAG];
00535                                 if (categories != null && categories.ContainsKey(this.DDLfmcategories.SelectedValue))
00536                                         return categories[this.DDLfmcategories.SelectedValue];
00537                                 else
00538                                         return null;
00539                         }
00540                 }
00544                 private FunctionRole.Subcategory SelectedSubcategory
00545                 {
00546                         get
00547                         {
00548                                 FunctionRoleSubcategories subcategories = (FunctionRoleSubcategories)this.Session[RAIS.UI.Common.Constants.FUNCTION_ROLE_SUBCATEGORIES_TAG];
00549                                 if (subcategories != null && subcategories.ContainsKey(this.DDLfmsubcategories.SelectedValue))
00550                                         return subcategories[this.DDLfmsubcategories.SelectedValue];
00551                                 else
00552                                         return null;
00553                         }
00554                 }
00558                 private Mask SelectedMask
00559                 {
00560                         get
00561                         {
00562                                 Masks masks = (Masks)this.Session[RAIS.UI.Common.Constants.MASKS_TAG];
00563                                 if (masks != null && masks.ContainsKey(this.DDLfmmask.SelectedValue))
00564                                         return masks[this.DDLfmmask.SelectedValue];
00565                                 else
00566                                         return null;
00567                         }
00568                 }
00572                 private FunctionRoleAttribute SelectedRoleAttribute
00573                 {
00574                         get
00575                         {
00576                                 if (this.SelectedRole != null)
00577                                         return this.SelectedRole.GetAttributeByIndex(GVfpermissions.SelectedIndex);
00578                                 else
00579                                         return null;
00580                         }
00581                 }
00585                 EditFunctionalRoles_PageMode CurrentEditFunctionalRoles_PageMode
00586                 {
00587                         get
00588                         {
00589                                 if (this.Session[UI.Common.Constants.FUNCTION_ROLE_EDIT_MODE_TAG] != null)
00590                                 {
00591                                         return (EditFunctionalRoles_PageMode)this.Session[UI.Common.Constants.FUNCTION_ROLE_EDIT_MODE_TAG];
00592                                 }
00593                                 else
00594                                         return EditFunctionalRoles_PageMode.viewRoles;
00595                         }
00596                         set
00597                         {
00598                                 string message;
00599                                 switch (value)
00600                                 {
00601                                         case EditFunctionalRoles_PageMode.addRole: message = RAIS.UI.Common.Constants.ADDING_NEW_FUNCTIONAL_ROLE; break;
00602                                         case EditFunctionalRoles_PageMode.editRole: message = RAIS.UI.Common.Constants.EDITTING_EXISTING_FUNCTIONAL_ROLE; break;
00603 
00604                                         default:
00605                                                 this.Session[RAIS.UI.Common.Constants.FUNCTION_ROLE_TEMPORARY_TAG] = null;
00606                                                 message = string.Empty;
00607                                                 break;
00608                                 }
00609                                 RAIS.UI.Common.MessageDisplay.DisplayReturnMessage(this.LBLresult, message, true);
00610                                 this.Session[UI.Common.Constants.FUNCTION_ROLE_EDIT_MODE_TAG] = value;
00611                                 this.EnableDisableControls();
00612                         }
00613                 }
00617                 bool Modified
00618                 {
00619                         get
00620                         {
00621                                 if (this.SelectedRole != null)
00622                                         return this.SelectedRole.Modified;
00623                                 else
00624                                         return false;
00625                         }
00626                         set
00627                         {
00628                                 if (this.SelectedRole != null)
00629                                         this.SelectedRole.Modified = value;
00630                         }
00631                 }
00635                 protected UserData CurrentUser
00636                 {
00637                         get { return (UserData)this.Session[UI.Common.Constants.CURRENT_USER_TAG]; }
00638                 }
00642                 private string SavedFunctionRoleSelection
00643                 {
00644                         get
00645                         {
00646                                 if (this.Session[RAIS.UI.Common.Constants.FUNCTION_ROLE_SAVED_SELECTION_TAG] != null)
00647                                         return this.Session[RAIS.UI.Common.Constants.FUNCTION_ROLE_SAVED_SELECTION_TAG].ToString();
00648                                 else
00649                                         return string.Empty;
00650                         }
00651                         set
00652                         {
00653                                 this.Session[RAIS.UI.Common.Constants.FUNCTION_ROLE_SAVED_SELECTION_TAG] = value;
00654                         }
00655                 }
00656                 #endregion
00657         }
00658 }